import Vue from 'vue'
import Vuex from 'vuex'
// 导入本地持久化token的方法
import * as auth from '../utils/auth'
// console.log('* as 对象=>获取模块所有导出：', auth)
// console.log('* as 对象=>获取模块所有导出：', auth)
// 导入登录接口请求方法
import { login } from '@/api/user'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
     // 存储登录后用户token=》{token:string, refresh_token:string}
     user: auth.getToken() || {}
     // user: {}
  },
  mutations: {
     // 存
     setToken (state, token) {
      // 1. 存到内存
      state.user = token
      // 2. 存到本地（硬盘）
      auth.setToken(token)
    },
    // 删
    delToken (state) {
      state.user = {}
      auth.delToken()
    }
  },
  actions: {
     // 登录接口请求
    //  login () {
       /**
     *
     * @param {*} param0
     * @param {*} form {mobile:手机号, code:验证码}
     */
    async getToken ({ commit }, form) {
      const { data } = await login(form)
      console.log('token:', data)
        // commit === 页面中 this.$store.commit
      commit('setToken', data)

    }
  },
  modules: {
  }
})
